System administration of multi-user computer systems is very specialized. The system administrators who are responsible for system administration are expected to know and understand commands that use inconsistent syntaxes, error reporting, and the like. These inconsistencies between the commands occur because the commands are written by several different software developers, each using their own style. The inconsistencies cause difficulties for the system administrators.
One difficulty relates to the usability of the commands. Having inconsistent commands makes system administration more difficult to learn and use. For example, some developers may prefer to use dashes (“-”) between parameters, others may prefer forward slashes (“/”), and still others may prefer to use another unique syntax. The developers may each have their own style in reporting error messages too. Thus, the system administrator must know the syntax for each command and learn the format of each error message.
Another difficulty relates to the maintenance of the commands. For example, when the developer who wrote one of the commands leaves, someone else must discover the logic that was used. In order to discover the logic, the other developer must look at the code itself or look at documentation about the command. Neither of these methods is very desirable.
Prior attempts at making commands more consistent have focused on providing a library of routines that perform common functionality. While this library may decrease the amount of code used for performing common functionality provided by the library routines, the developers still use their own style in handling error conditions that arise from using any of the library routines. In addition, the use of the library does not affect the need for each command to contain logic for obtaining input parameters from the command line. Therefore, while using a library of routines may decrease some of the code that needs to be written, there is still a considerable amount of duplicative code that is generated for each command in order to perform parsing, data validation, and error reporting.
Therefore, there is a need for an environment in which input parameters to commands are obtained and processed in a more consistent manner while reducing the amount of code that is required for the command as well as providing consistent error messages during the parameter acquisition phase for all commands.